/**
 * 数字和.
 * @param {*} val
 */
export const numberDotReplace = (val: string) => {
  return val.replace(/[^\d.]/g, "");
};
/**
 * 整数数字
 * @param {*} val
 */
export const integerReplace = (val: string) => {
  if (typeof val !== "string") {
    val = val + "";
  }
  val = val.replace(/[^\d]/g, "");
  if (val === "") {
    return "0";
  }
  return parseInt(val).toString();
};
/**
 * 正整数数字
 * @param {*} val
 */
export const positiveIntReplace = (val: string) => {
  if (typeof val !== "string") {
    val = val + "";
  }
  return val.replace(/^0{1}/g, "").replace(/[^\d]/g, "");
};
/**
 * 一位小数
 * @param {*} val
 * @returns
 */
export const oneDecimalReplace = (val: string) => {
  return val
    .replace(/[^\d.]/g, "") // 先把非数字的都替换掉，除了数字和.
    .replace(/\.{2,}/g, ".") // 保证只有出现一个.而没有多个.
    .replace(/^\./g, "") // 必须保证第一个为数字而不是.
    .replace(".", "$#$") // 保证.只出现一次，而不能出现两次以上
    .replace(/\./g, "")
    .replace("$#$", ".")
    .replace(/^(\-)*(\d+)\.(\d).*$/, "$1$2.$3"); // 只能输入两个小数
};
/**
 * 两位小数
 * @param {*} val
 * @returns
 */
export const twoDecimalReplace = (val: string) => {
  return val
    .replace(/[^\d.]/g, "") // 先把非数字的都替换掉，除了数字和.
    .replace(/\.{2,}/g, ".") // 保证只有出现一个.而没有多个.
    .replace(/^\./g, "") // 必须保证第一个为数字而不是.
    .replace(".", "$#$") // 保证.只出现一次，而不能出现两次以上
    .replace(/\./g, "")
    .replace("$#$", ".")
    .replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); // 只能输入两个小数
};
/**
 * 4位小数
 * @param {*} val
 * @returns
 */
export const fourDecimalReplace = (val: string) => {
  return val
    .replace(/[^\d.]/g, "") // 先把非数字的都替换掉，除了数字和.
    .replace(/\.{2,}/g, ".") // 保证只有出现一个.而没有多个.
    .replace(/^\./g, "") // 必须保证第一个为数字而不是.
    .replace(".", "$#$") // 保证.只出现一次，而不能出现两次以上
    .replace(/\./g, "")
    .replace("$#$", ".")
    .replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, "$1$2.$3"); // 只能输入4个小数
};
